package com.sg.dto.biz.app.req;

import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @desc AnalysisTargetBelongCycleCalcFormulaComReqDto
 * @使用场景
 */
@Data
public class AnalysisTargetBelongCycleCalcFormulaComReqDto
        extends BaseDto
        implements Serializable {

    /**
     * 目标归属周期ID
     */
    @NotNull(message = "目标归属周期ID不能为空")
    @ApiModelProperty("目标归属周期ID")
    private String targetAttributionCycleId;

    /**
     * 评价模板商业参数
     */
    @NotNull(message = "评价模板商业参数不能为空")
    @ApiModelProperty("评价模板商业参数")
    private String schemeDataPara;

    /**
     * 汇报类型 ARTIFICIAL_REPORT:人工汇报 SEMIAUTOMATIC_REPORT:半自动汇报 AUTO_REPORT:全自动汇报
     */
    @NotNull(message = "汇报类型不能为空")
    @ApiModelProperty("汇报类型")
    private String reportType;

    /**
     * 末级周期类型 HALF_YEAR:半年 QUARTER:季度 DOUBLE_MONTHS:双月 MONTH:月 DOUBLE_WEEKS:双周 WEEK:周 DISABLE:不启用
     */
    @NotNull(message = "末级周期类型不能为空")
    @ApiModelProperty("末级周期类型")
    private String lastCycleType;

    /**
     * 无实际值指标是否开启进度汇报 TRUE:是 FALSE:否
     */
    @ApiModelProperty("无实际值指标是否开启进度汇报")
    private String noPracticalValueObjIsProgReport;

    /**
     * 目标分类目标得分是否开启本级得分 TRUE:是 FALSE:否
     */
    @NotNull(message = "目标分类目标得分是否开启本级得分不能为空")
    @ApiModelProperty("目标分类目标得分是否开启本级得分")
    private String actualScoreIsOpenLocalLevelScore;

    /**
     * 指标目标得分是否开启本级得分 TRUE:是 FALSE:否
     */
    @NotNull(message = "指标目标得分是否开启本级得分不能为空")
    @ApiModelProperty("指标目标得分是否开启本级得分")
    private String objectiveActualScoreIsOpenLocalLevelScore;

    /**
     * 开启主客观评分周期类型 LAST_CYCLE:末级周期 UNLIMITED:不限
     */
    @NotNull(message = "开启主客观评分周期类型不能为空")
    @ApiModelProperty("开启主客观评分周期类型")
    private String enableSubjectiveRatingCycleType;

    /**
     * 创建于空间ID
     */
    @NotNull(message = "创建于空间ID不能为空")
    @ApiModelProperty("创建于空间ID")
    private String spaceId;

}
